Recently, in the field of information processing, `Multimedia` has been developed rapidly, in which various kinds of media, such as video and audio media, are combined in optimum forms for various applications.
There are various types of multimedia, for example, multimedia communication, multimedia broadcasting, and multimedia packages. Typical multimedia packages are video CDs and CD-ROMs from which video and audio information can be reproduced using game machines or personal computers.
FIG. 11 is a block diagram illustrating a CD moving picture player for reproducing video CDs and CD-ROMs. With reference to FIG. 11, reference numeral 901 designates a CD drive identical to an ordinary CD drive for music CDs. An MPEG system decoder 902 decodes an input stream. An MPEG video decoder 903 decodes an output from the MPEG system decoder 902. An MPEG audio decoder 904 decodes an output from the MPEG system decoder 902. The MPEG system decoder 902, the MPEG video decoder 903, and the MPEG audio decoder 904 are integrated in an MPEG decoding LSI 900. The MPEG video decoder 903 and the MPEG audio decoder 904 use RAMs 905 and 906 for decoding, respectively. A video output processor 907 processes an output from the MPEG video decoder 903. An audio output processor 908 processes an output from the MPEG audio decoder 904. A video output terminal 909 outputs the output from the video output processor 907 to an external monitor or the like (not shown). An audio output terminal 910 outputs the output from the audio output processor 908 to an external speaker or the like (not shown).
FIG. 12 shows a physical format of a video CD, such as a video CD or a CD-ROM. In FIG. 12, reference numeral 12 denotes a spiral signal track formed on one side of a disk 10, and the signal track 12 consists of plural tracks of numbers T1.about.Tn (hereinafter referred to simply as tracks T1.about.Tn). On the tracks T1.about.Tn, programs of different contents are recorded.
FIG. 13 shows a format of data recorded on the tracks of the CD shown in FIG. 12. In the FIG. 13 reference numeral 11a denotes a header (HD), 11b denotes a system clock reference (SCR), 11c denotes a presentation time stamp (PTS), and 11d denotes packet data (PD) for one frame.
A description is given of the operation of the CD moving picture player. Data recorded on the disk 10 shown in FIG. 12 in the format shown in FIG. 13 is reproduced by the CD drive 901 shown in FIG. 11. The MPEG system decoder 902 divides the reproduced digital data into MPEG1 video information and MPEG1 audio information, whereby video and audio information which has been encoded according to MPEG1 encoding algorithm when recorded on the disk is decoded by MPEG1 decoding algorithm.
The MPEG video decoder 903 receives the MPEG1 video information from the MPEG system decoder 902, and decodes the information according to MPEG1 decoding algorithm to restore digital video information before encoding. The video output processor 907 receives the digital video information from the MPEG video decoder 903, converts the digital video information to analog video information, and outputs the analog video information through the video output terminal 909 to an external monitor or the like.
On the other hand, the MPEG audio decoder 904 receives the MPEG1 audio information from the MPEG system decoder 902, and decodes the information according to MPEG1 audio algorithm to restore digital audio information before encoding. The audio output processor 908 receives the digital audio information from the MPEG audio decoder 904, converts the digital audio information to analog audio information, and outputs the analog audio information through the audio output terminal 910 to an external speaker or the like.
Since the CD moving picture player uses a CD format as a recording medium of moving picture information, even when the disk is flawed or dust attaches to the CDs, reproduction is possible. Further, video images are not deteriorated over many years. Furthermore, since random access to video programs is possible, handling is facilitated, so that the user can enjoy video reproduction easily.
However, a decoder for decoding a bit stream including, in addition to video data and audio data, data that is digitally added to the video data and displayed, has not been widely used yet.
In recent years, a DVD (Digital Versatile Disk) system employing optical disk media as small as CDs and realizing high-definition and long-hour video/audio reproduction has been developed. Further, the DVD system provides new functions which have not been realized by conventional AV (Audio Visual) equipment, for example, `Multiple Camera Angles` by which the viewer can select more than one angle for particular shorts, `Multi-Plot Movies` by which the viewer can change the plot development according to personal taste, and `Multilingual Dialog & Subtitles` corresponding to plural languages.
The DVD system provides a recording density seven times as high as that of a CD and compresses recorded data to 1/40 of original data by employing MPEG2 data encoding, resulting in improved image quality, increased recording hours, and multi-functions.
A DVD player is implemented by, in the CD moving picture player shown in FIG. 11, making the MPEG decoding LSI applicable to MPEG2.
Hereinafter, video data that is produced for the purpose of being displayed on a screen is called `main-picture data`, and video data that is digitally added to the main-picture data when displayed, such as sub-titles, is called `sub-picture data`.
Further, an output time per unit output is given to each of the main-picture data, audio data, and sub-picture data, and this output time is called `presentation time stamp (PTS)` following an expression used in "ITU-T recommendation H.222" or "ISO/IEC 13818-1".
Further, in order to know whether the time from turn-on of a decoder, such as a CD moving picture player, to start reproduction of a disk reaches the PTS or not, a clock serving as a reference is needed. This clock is implemented by a digital counter in a decoder as shown in FIG. 14. Hereinafter, this clock is called `system clock`.
In FIG. 14, an optical pickup 13 reads information recorded on the disk. A decoder 14 converts the information read by the optical pickup 13 to digital information, and decompresses the digital information to restore the original video or audio information. A system clock 15 is contained in the decoder 14. A monitor television set 16 displays video information decoded by the decoder 14. A speaker 17 reproduces audio information decoded by the decoder 14.
A reference time for setting the system clock 15 is added to data, i.e., a bit stream to be decoded. Hereinafter, this reference time is called `system clock reference (SCR)` following an expression used in "ITU-T recommendation H.222" or "ISO/IEC 13818-1".
According to the time counted by the system clock 15 that is set at the SCR, the decoder 14 performs data processing with reference to PTS values added to the main-picture data, the audio data, and the sub-picture data, and outputs main-picture data, audio data, and sub-picture data. A PTS shows a timing to output compressed video or audio data in one frame. When the value of the system clock 15 (hereinafter referred to as SC value) matches or exceeds the PTS values, the main-picture data, the audio data, and the sub-picture data are synchronized with each other so that data per unit output to which the PTS values are added are output.
PTS and SCR are usually added to each single bit stream having a coherent content, such as a title, with `0` as a reference. Hereinafter, such a single bit stream is called `video object (VOB)`.
FIG. 15 shows an example of a VOB. In FIG. 15, M denotes data for displaying a menu screen shown in FIG. 16 on a monitor, and P1.about.P5 denote programs having different contents. Each program is composed of plural data packets and, in each packet, information of one frame is stored in a format as shown in FIG. 13.
The menu screen shown in FIG. 16 is displayed on the monitor when the VOB is reproduced. In this example, titles of reproducible programs P1.about.P5 are displayed on the right side of the monitor screen while numerals 1.about.5 corresponding to the respective programs are displayed on the left side. When the viewer presses a numerical key on a remote control transmitter having the same number as a program on the menu screen for which the viewer wants to play, the decoder 14 reproduces the title (program) of the number. When the viewer presses the numerical key at random, for example, 1.fwdarw.4, random reproduction of the programs, i.e., program 1.fwdarw.program 4, is possible.
By the way, in the main-picture data, audio data, and sub-picture data constituting the VOBs, information about which VOB the data belongs to is not added at all. When the main-picture data and the audio data are decoded by the conventional CD moving picture player, decoding is executed having no regard for relations between these data and the boundaries of the VOBs. Since decoding of the sub-picture data follows the decoding method of the main-picture data, the sub-picture data is decoded having no regard for relations with the boundaries of the VOBs.
A description is now given of drawbacks of the conventional decoder constructed as mentioned above.
When plural VOBs including main-picture data, audio data, and sub-picture data and having SCR values starting from "0" are successively decoded, since the SCR values take initial values at the heads of the respective VOBs, the SCR values are discontinuous at the boundaries of the VOBs.
However, the main-picture data must be output synchronously with the SC value, and it must be continuous at the boundaries of the VOBs. Further, the main-picture data must be successively output to the monitor without that the same image (frame) is continuously output due to an interruption in decoding.
In FIG. 17, the abscissa shows the real time, and the ordinate shows the SC value and the PTS value. In VOB 1, the system clock starts from C1 ("0" in FIG. 17) at time T0 (t=0) and gradually increases, while the PTS starts from P1 ("2" in FIG. 17) at time T1 (t=2).
In VOB 2, since the SCR value and the PTS value are given with `0` as a reference, the SCR value must be set in the system clock when image output for the VOB 1 has ended. However, since the conventional decoder decodes data with no regard for relations with the boundary of the VOBs 1 and 2, correct timing to set the SCR value in the system clock is not known in the VOB 2.
Hence, a decoder for decoding a bit stream including main-picture data, audio data, and sub-picture data is requested to know the end of data processing and output in the VOB. The reason will be described hereinafter with reference to FIGS. 19 and 20.
FIG. 19 is d flowchart for explaining the reproducing operation of the conventional CD moving picture player. FIG. 20 shows the relationships between SCR and PTS values (data) included in the VOBs 1 and 2, SC values, and output data PTS values.
First of all, as shown in FIG. 20, two kinds of data, SCR and PTS, are described in data constituting the VOBs 1 and 2. The SCR is data of 33 bits serving as a reference for count of the system clock 15 shown in FIG. 14, and the SCR has "0" as an initial value and increases by "1" for each single frame. In step S200, the CD moving picture player starts reproduction (play). In step S201, the SCR is detected. In step S202, the SCR value is set in the system clock 15, whereby the system clock 15 performs counting operation that starts from an initial value "0" and increases by "1" so that the counted value corresponds to the SCR value.
The PTS is time management information for reproduction and output, and it consists of data of 33 bits like the SCR. Considering a delay time required for data processing in the decoder, the PTS value described is by "2" larger than the SCR value in the packet of the same frame. In step S203, the SC value is compared with the PTS value. When it is detected in step S204 that the SC value is equal to or larger than the PTS value, data of the frame is output in step S205. In step S206, data of the next PTS is obtained.
Therefore, as shown in FIG. 20, the SCR and the PTS added to data to be decoded start from "0" and "2", respectively, and increase each by "1", whereby the SC value starts from "0" and increases by "1". Since the initial PTS value is "2", when the SC value becomes "2", data of a frame whose SCR value is "0", i.e., data of the first frame, is output. At this time, a frame whose SCR value is "2" is input. Thereafter, data of frames are successively output at such timing that two frames are delayed from the SCR value. The system clock 15 performs self-propelled count after setting of the initial value except when it is adjusted by the SCR value sometimes. After the SCR value reaches "100", the system clock 15 continues self-propelled count, and the SC value increases as "101", "102", whereby frames whose PTS values are "101" and "102" are successively output.
When data processing for the first VOB 1 has ended as mentioned above, the next VOB 2 is input, and the SC value is updated to "0" by the SCR value "0" of the first frame in the VOB 2. Thereafter, in the same manner as mentioned above, the SC value increases by "1" at every input of data of one frame. Since data of the first frame whose SCR value is "0" is not output until the SC value becomes "2", there is no data to be output in a period from the end of the output of data in the previous VOB 1 to the output of data in the first frame of the next VOB 2. Thereby, the screen turns black for a moment, and the image on the screen is interrupted. Further, an image of the last frame in the VOB 1 is continuously output until an image of the first frame in the VOB 2 is output.
In order to solve the above-mentioned problem, it is necessary to detect boundaries of VOBs and to output data with such timing that the output data are not discontinuous at the detected boundaries of the VOBs.
Even though it is known that the image output for the VOB 1 is completed at time T101, there is a case where the SCR value of the VOB 2 cannot be set in the system clock at time T102. With reference to FIG. 17, it is assumed that, after the PTS value has become P2 ("2" in FIG. 17) at time T102 (t=103), the SCR value C2 ("3", and C2&gt;P2) is set in the system clock at time T103 (t=104).
In a period from T101 to T103, i.e., at time T102, the SC value exceeds the PTS value. In a synchronous system, when the SC value is larger than the PTS value exceeding a prescribed reference value, the system tries to bring the PTS value close to the SC value by stopping output of the image being processed to advance output of the next image. Therefore, in the synchronous system, when the main-picture data is decoded without considering the relations with the boundary of the VOBs, if the same synchronization as mentioned above is performed in the period from T101 to T104, since the SC value is larger than the PTS value exceeding a prescribed reference value, a portion of image output is skipped, resulting in discontinuous image.
Therefore, a decoder for decoding a bit stream including main-picture data, audio data, and sub-picture data is required to output images continuously at the VOB boundaries, without skipping or interrupting a portion of image output or continuously outputting the same image.
Further, similar problems occur in decoding of audio data and in output of data including sub-picture data.
Therefore, the decoder for decoding a bit stream including main-picture data, audio data, and sub-picture data is required to output sounds continuously at the VOB boundaries, without skipping or interrupting a portion of sound output.
Furthermore, in the conventional decoder for decoding a bit stream including main-picture data, audio data, and sub-picture data, when the SC value is discontinuous, the following problem occurs.
FIG. 18 is an output timing chart of sub-picture data intermittently superposed on main-picture data, such as captions, when the system clock 15 takes discontinuous values.
In this case, the main-picture data must be output synchronously with the SC value, and it must be continuous at the boundaries of the VOBs. Further, the main-picture data must be output to the monitor successively without that the same image is continuously output due to an interruption in decoding. Contrary to this, the sub-picture data must be output to the monitor intermittently and synchronously with the SC value. In FIG. 18, the abscissa shows the real time. The SC value starts from C1 ("0" in FIG. 18) at time T0 (t=0), and becomes C2 ("2" in FIG. 18) at time T102 (t=103) for setting the SCR value of the VOB 2.
The PTS values of the sub-picture data are discontinuous because the sub-picture data are intermittently output to the monitor as follows: sub-picture data 1 in a period from T11 to T12, sub-picture data 2 in a period from T13 to T14, and sub-picture data 3 in a period from T15 to T16. Accordingly, when the sub-picture data are decoded without considering relations between the data and the boundaries of the VOBs, the following problem occurs. Assuming that the PTS of the sub-picture data 3 is obtained after image output of the sub-picture data 2 has ended and the obtained PTS is compared with the SC value, since the SC value exceeds the PTS value, image output of the sub-picture data 3 is started. That is, the sub-picture data to be output in the VOB 2 is unfavorably output in the VOB 1.
The reason why the data of the VOB 2 exists in the decoder at the image output time for the VOB 1 is because a data storage means like DRAM is contained in or connected to the decoder.
Consequently, the decoder for decoding a bit stream including main-picture data, audio data, and sub-picture data is requested to perform image output of data included in each VOB, correctly, within the output time for the VOB.